import javax.swing.JFrame;
import javax.swing.JButton;

import org.apache.torque.TorqueException;

import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class VueMenuInter extends Vue{
	private JButton btnSauvegarder;
	private JButton btnChargerUnePartie;
	private JButton btnQuitter;
	private JButton btnRetourAuMenu;
	private JButton btnRetourJeu;
	public VueMenuInter(Controleur controleur, final VueJeu vueApellante){
		super(controleur);
		setTitle("Menu: StarAttack");
		// Affichage de la fenêtre non redimensionable
		setLocationRelativeTo(this.getParent());
		setVisible(true);
		setResizable(false);
		// Affectation de la dimension minimale pour la fenêtre
		Dimension dimMini = new Dimension();
		dimMini.height = 250;
		dimMini.width = 300;
		setMinimumSize(dimMini);
		// Ajout du layout a la fenêtre (position absolue)
		getContentPane().setLayout(null);
		
		btnSauvegarder = new JButton("Sauvegarder");
		btnSauvegarder.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					getControleur().sauvPositionVaisseaux(vueApellante.getPositionsVaisseaux());
				} catch (Exception e1) {
					e1.printStackTrace();
				}
				try {
					getControleur().sauvPartie(((VueJeu) vueApellante).getPartieCourante());
				} catch (Exception e2) {
					e2.printStackTrace();
				}
				try {
					getControleur().sauvPositionObjets(((VueJeu) vueApellante).getPositionsObjets());
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
		});
		btnSauvegarder.setBounds(29, 29, 231, 25);
		getContentPane().add(btnSauvegarder);
		
		btnChargerUnePartie = new JButton("Charger une partie");
		btnChargerUnePartie.setBounds(29, 54, 231, 25);
		getContentPane().add(btnChargerUnePartie);
		btnChargerUnePartie.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				try {
					getControleur().lancerVueChargementPartie();
					getControleur().fermerVue(VueMenuInter.this);
					getControleur().fermerVue(vueApellante);
				} catch (TorqueException e) {
					e.printStackTrace();
				}
			}
		});
		
		btnQuitter = new JButton("Quitter");
		btnQuitter.setBounds(29, 165, 231, 25);
		getContentPane().add(btnQuitter);
		btnQuitter.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				getControleur().ExitProgramme();
			}
		});
		
		btnRetourAuMenu = new JButton("Menu Principal");
		btnRetourAuMenu.setBounds(29, 91, 231, 25);
		btnRetourAuMenu.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				getControleur().fermerVue(vueApellante);
				try {
					getControleur().lancerVueMenuJeu();
					getControleur().fermerVue(VueMenuInter.this);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		getContentPane().add(btnRetourAuMenu);
		
		btnRetourJeu = new JButton("Revenir au jeu");
		btnRetourJeu.setBounds(29, 128, 231, 25);
		btnRetourJeu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				getControleur().fermerVue(VueMenuInter.this);
			}
		});
		getContentPane().add(btnRetourJeu);
		
		
	}
}
